package com.deng.util;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTools {

	private final static String _JUST_DATE = "yyyy-MM-dd";
	private final static String _JUST_DATE_xiegang = "yyyy/MM/dd";
	private final static String _JUST_DATE_CHS = "yyyy年MM月dd日";
	private final static String _DATE_TIME = "yyyy-MM-dd HH:mm:ss";
	private final static String _DATE_TIME_SSS = "yyyy-MM-dd HH:mm:ss.SSS";
	private final static String _DATE_TIME_CHS = "yyyy年MM月dd日 HH点mm分ss秒";
	private final static String _DATE_HOUR = "yyyy-MM-dd HH";
	private final static String _DATE_HOUR_CHS = "yyyy年MM月dd日 HH点";
	
	public static java.sql.Date UDtoSD(Date date){
		return new java.sql.Date(date.getTime());
	}
	public static Date stdJustDate(String date){//日期－－> 2011－1－1
		return std(date,_JUST_DATE);
	}
	public static Date stdJustDate_xiegang(String date){//日期－－> 2011－1－1
		return std(date,_JUST_DATE_xiegang);
	}
	public static Date stdJustDate_CHS(String date){//日期－－> 2011年1月1日
		return std(date,_JUST_DATE_CHS);	 
	}
	public static Date stdWithTime(String date){//日期－－> 2011－1－1 00:00:00
		return std(date,_DATE_TIME);
	}
	public static Date stdWithTime_CHS(String date){//日期－－> 2011年1月1日 00点00分00秒
		return std(date,_DATE_TIME_CHS);	 
	}
	public static Date stdWithHour(String date){//日期－－> 2011－1－1 00
		return std(date,_DATE_HOUR);
	}
	public static Date stdWithHour_CHS(String date){//日期－－> 2011年1月1日  00点
		return std(date,_DATE_HOUR_CHS);	 
	}
	
	
	public static String dtsJustDate(Date date){//日期－－> 2011－1－1
		return dts(date,_JUST_DATE);
	}
	public static String dtsJustDate_CHS(Date date){//日期－－> 2011年1月1日
		return dts(date,_JUST_DATE_CHS);	 
	}
	public static String dtsWithTime(Date date){//日期－－> 2011－1－1 00:00:00
		return dts(date,_DATE_TIME);
	}
	public static String dtsWithTime_CHS(Date date){//日期－－> 2011年1月1日 00点00分00秒
		return dts(date,_DATE_TIME_CHS);	 
	}
	public static String dtsWithHour(Date date){//日期－－> 2011－1－1 00
		return dts(date,_DATE_HOUR);
	}
	public static String dtsWithHour_CHS(Date date){//日期－－> 2011年1月1日  00点
		return dts(date,_DATE_HOUR_CHS);	 
	}


	public static String dtsWithTimeS0(Date date){//日期－－> 2011－1－1 11:12:00
		return dtsS0(date,_DATE_TIME);
	}
	public static String dtsWithTimeT0(Date date){//日期－－> 2011－1－1 00:00:00
		return dtsT0(date,_DATE_TIME);
	}
	public static String dtsWithTimeT0_CHS(Date date){//日期－－> 2011年1月1日 00点00分00秒
		return dtsT0(date,_DATE_TIME_CHS);	 
	}
	public static String dtsWithHourT0(Date date){//日期－－> 2011－1－1 00
		return dtsT0(date,_DATE_HOUR);
	}
	public static String dtsWithHourT0_CHS(Date date){//日期－－> 2011年1月1日  00点
		return dtsT0(date,_DATE_HOUR_CHS);	 
	}
	
	
	
	

	private static String dts(Date date,String type){
		if(date != null){
			DateFormat format = new java.text.SimpleDateFormat(type);
		    String s = format.format(date);
		    return s;
		}
		return null;	
	}
	private static String dtsT0(Date date,String type){
		if(date != null){
			date.setHours(0);
			date.setMinutes(0);
			date.setSeconds(0);
			DateFormat format = new java.text.SimpleDateFormat(type);
		    String s = format.format(date);
		    return s;
		}
		return null;	
	}
	private static String dtsS0(Date date,String type){
		if(date != null){
			date.setSeconds(0);
			DateFormat format = new java.text.SimpleDateFormat(type);
		    String s = format.format(date);
		    return s;
		}
		return null;	
	}
	private static Date std(String str,String type){
		try{
			if(str != null){//
				DateFormat format = new SimpleDateFormat(type); 
				Date date = format.parse(str); 
				return date;
			}
		}catch(Exception ex){
			ex.printStackTrace();
		}
		return null;
	}
	
	public static Timestamp getTimestamp(Date date){
		return Timestamp.valueOf(new SimpleDateFormat(_DATE_TIME_SSS).format(date));
	}
	
	public static void main(String s[]){
		System.out.println(stdJustDate("2011-4-1"));
	}
}
